জাভাস্ক্রিপ্টে this
একটি গুরুত্বপূর্ণ কিওয়ার্ড যা বর্তমান এক্সিকিউশন কনটেক্সটের উপর ভিত্তি করে ভ্যালু ধারণ করে। সাধারণত এটি একটি ফাংশনের মধ্যে ব্যবহৃত হয় এবং ফাংশনটির সাথে সম্পর্কিত অবজেক্টকে রেফার করে। this
কিওয়ার্ডের মান কিভাবে কাজ করে তা নির্ভর করে কোডের কনটেক্সট বা কীভাবে ফাংশনটি কল করা হচ্ছে তার উপর।
this
কিওয়ার্ডের ব্যবহারthis
যখন this
গ্লোবাল স্কোপে ব্যবহৃত হয়, এটি গ্লোবাল অবজেক্টের রেফারেন্স হয়। ব্রাউজারে এটি window
অবজেক্টকে নির্দেশ করে এবং Node.js-এ এটি global
অবজেক্টকে নির্দেশ করে।
console.log(this); // ব্রাউজারে: window, Node.js-এ: global
this
যখন একটি ফাংশন সাধারণভাবে কল করা হয়, তখন this
গ্লোবাল অবজেক্ট (যেমন ব্রাউজারে window
) এর রেফারেন্স হয়। তবে strict mode
চালু থাকলে this
undefined
হয়ে যায়।
function showThis() {
console.log(this); // ব্রাউজারে: window, Node.js-এ: global
}
showThis();
strict mode
ব্যবহার করলে:
"use strict";
function showThis() {
console.log(this); // undefined
}
showThis();
this
যখন this
কে একটি অবজেক্টের মেথডে ব্যবহার করা হয়, এটি সেই অবজেক্টকেই নির্দেশ করে যার মেথডটি কল হচ্ছে।
let person = {
name: "Alice",
greet: function() {
console.log(this.name); // this এখানে person অবজেক্টকে নির্দেশ করে
}
};
person.greet(); // আউটপুট: Alice
এখানে this
person
অবজেক্টকে নির্দেশ করছে, কারণ greet
মেথডটি person
অবজেক্টে কল করা হয়েছে।
this
কনস্ট্রাক্টর ফাংশন ব্যবহার করে নতুন অবজেক্ট তৈরি করার সময় this
নতুন অবজেক্টের রেফারেন্সকে নির্দেশ করে। কনস্ট্রাক্টর ফাংশন new
কিওয়ার্ডের মাধ্যমে কল করা হয়।
function Person(name, age) {
this.name = name;
this.age = age;
}
let person1 = new Person("John", 30);
console.log(person1.name); // আউটপুট: John
console.log(person1.age); // আউটপুট: 30
এখানে this
person1
নামক নতুন অবজেক্টকে নির্দেশ করছে, কারণ এটি কনস্ট্রাক্টর ফাংশনে ব্যবহৃত হয়েছে।
this
ইভেন্ট হ্যান্ডলারে this
কিওয়ার্ড সাধারণত ইভেন্টটির লক্ষ্য (target) এলিমেন্টকে নির্দেশ করে।
let button = document.querySelector("button");
button.addEventListener("click", function() {
console.log(this); // this এখানে button এলিমেন্টকে নির্দেশ করে
});
এখানে, this
সেই button
এলিমেন্টকে নির্দেশ করছে যার উপর ক্লিক ইভেন্টটি ঘটেছে।
this
arrow function
ব্যবহারে this
কিওয়ার্ডের আচরণ সাধারণ ফাংশনের থেকে আলাদা। arrow function এর নিজস্ব this
থাকে না, এটি তার পাশের কনটেক্সট থেকে this
গ্রহণ করে। অর্থাৎ, arrow function এ this
সেই কনটেক্সটকে নির্দেশ করে যেখানে ফাংশনটি ডিফাইন করা হয়েছে।
let person = {
name: "Bob",
greet: function() {
setTimeout(() => {
console.log(this.name); // this এখানে person অবজেক্টকে নির্দেশ করে
}, 1000);
}
};
person.greet(); // আউটপুট: Bob
এখানে, arrow function এর কারণে this
person
অবজেক্টকে নির্দেশ করছে, কারণ this
এর মান greet
মেথডের কনটেক্সট থেকে নেওয়া হয়েছে।
this
কিওয়ার্ড জাভাস্ক্রিপ্টের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ফাংশনের কনটেক্সট অনুসারে বিভিন্ন অবজেক্ট বা মান নির্দেশ করতে পারে। এর আচরণ ভিন্ন ভিন্ন কনটেক্সটে বিভিন্নভাবে পরিবর্তিত হয়, যেমন গ্লোবাল স্কোপ, ফাংশন কল, অবজেক্ট মেথড, কনস্ট্রাক্টর ফাংশন এবং arrow function-এর মধ্যে। this
কিওয়ার্ডের সঠিক ব্যবহার কোডের কার্যকারিতা এবং নির্ভুলতা নিশ্চিত করতে গুরুত্বপূর্ণ।
common.read_more